package com.example.zhaoping.domain;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 
 * </p>
 *
 * @author czx
 * @since 2024-12-23
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("user")
@ApiModel("用户类")
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 用户唯一标识符
     */
    @ApiModelProperty("用户唯一标识符")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 用户登录名
     */
    @ApiModelProperty("用户登录名")
    private String username;

    /**
     * 用户加密密码
     */
    @ApiModelProperty("用户加密密码")
    @JsonIgnore
    private String password;

    /**
     * 用户全名
     */
    @ApiModelProperty("用户全名")
    private String fullName;

    /**
     * 用户电子邮件地址，用于验证和通知
     */
    @ApiModelProperty("用户电子邮件地址")
    private String email;

    /**
     * 用户手机号码，用于验证和联系
     */
    @ApiModelProperty("用户手机号码")
    private String phoneNumber;

    @ApiModelProperty("用户性别（0男，1女）")
    private String sex;

    /**
     * 用户角色（1=管理员，2=招聘者，3=应聘者等，可根据需要定义）
     */
    @ApiModelProperty("用户角色")
    private Integer role;

    /**
     * 用户创建时间
     */
    @ApiModelProperty("用户创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createdTime;

    /**
     * 用户信息最后更新时间
     */
    @ApiModelProperty("用户信息最后更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updatedTime;


}
